# 导入数据库实例和安全模型基类
from extensions import db 
from flask_security.models import fsqla_v2 as fsqla  

# 配置Flask-Security使用当前数据库实例
fsqla.FsModels.set_db_info(db)  # 将数据库实例绑定到安全模型


class Role(db.Model, fsqla.FsRoleMixin):
    """
    用户角色模型
    继承自:
        db.Model: SQLAlchemy基础模型
        fsqla.FsRoleMixin: Flask-Security角色混入类
    
    提供角色管理功能，包含:
        name: 角色名称(唯一)
        description: 角色描述
        permissions: 角色权限
    """
    __tablename__ = 'role'  # 数据库表名
    pass  


class User(db.Model, fsqla.FsUserMixin):
    """
    用户账户模型
    继承自:
        db.Model: SQLAlchemy基础模型
        fsqla.FsUserMixin: Flask-Security用户混入类
    
    提供用户管理功能，包含:
        email: 用户邮箱(唯一)
        password: 加密密码
        active: 账户激活状态
        confirmed_at: 邮箱确认时间
        roles: 关联的用户角色
    """
    __tablename__ = 'user'  # 数据库表名
    pass  